home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / tclMotif-1.4 / programs / prog109 < prev    next >
Text File  |  1995-06-29  |  3KB  |  119 lines

  1.  
  2. # Dan Hellers program 4.3, p 99
  3. # show pixmaps, allow them to change cursor, file selection to
  4. # change bitmaps. When doing this, use pixmaps in eg
  5. # /usr/lib/X11/bitmaps
  6.  
  7. global pixmap
  8.  
  9. set pixmap xlogo32
  10.  
  11. xtAppInitialize
  12.  
  13. xmMainWindow .main managed -scrollBarDisplayPolicy as_needed \
  14.         -scrollingPolicy automatic
  15. # mainWindow .main
  16. xmLabel .main.label managed -labelType pixmap -labelPixmap $pixmap
  17.  
  18. # I am not supporting simple menu functions, so do this the long way
  19.  
  20. # top menu bar
  21. xmMenuBar .main.menuBar managed
  22. xmCascadeButton .main.menuBar.file managed \
  23.     -labelString File \
  24.     -mnemonic F
  25. xmCascadeButton .main.menuBar.cursor managed \
  26.     -labelString Cursor \
  27.     -mnemonic E
  28. xmCascadeButton .main.menuBar.help managed \
  29.      -labelString Help \
  30.     -mnemonic H
  31.  
  32. # file pulldown
  33. xmPulldownMenu .main.menuBar.fileMenu
  34. xmPushButton .main.menuBar.fileMenu.new managed \
  35.     -labelString "New..." \
  36.     -mnemonic N
  37. xmPushButton .main.menuBar.fileMenu.quit managed \
  38.      -labelString Quit \
  39.     -mnemonic Q
  40. .main.menuBar.file setValues -subMenuId .main.menuBar.fileMenu
  41.  
  42. # callbacks for file menu
  43. .main.menuBar.fileMenu.quit activateCallback "exit 0"
  44. .main.menuBar.fileMenu.new  activateCallback fileDialog
  45.  
  46. # Cursor pulldown
  47. xmPulldownMenu .main.menuBar.cursorMenu
  48. xmToggleButton .main.menuBar.cursorMenu.X_cursor managed \
  49.     -labelString X_cursor
  50. xmToggleButton .main.menuBar.cursorMenu.boat managed \
  51.     -labelString boat \
  52.     -mnemonic R
  53. xmToggleButton .main.menuBar.cursorMenu.circle managed\
  54.     -labelString circle \
  55.     -mnemonic G
  56. xmToggleButton .main.menuBar.cursorMenu.coffee_mug managed \
  57.     -labelString coffee_mug \
  58.     -mnemonic B
  59.  
  60. # .main.menuBar.cursorMenu.black setValues -set True
  61. .main.menuBar.cursor setValues -subMenuId .main.menuBar.cursorMenu
  62.  
  63. # callbacks for edit menu
  64. # note we use disarm rather than armed, because changed value
  65. # not set till then
  66. .main.menuBar.cursorMenu.X_cursor disarmCallback "change_cursor X_cursor"
  67. .main.menuBar.cursorMenu.boat   disarmCallback "change_cursor boat"
  68. .main.menuBar.cursorMenu.circle disarmCallback "change_cursor circle"
  69. .main.menuBar.cursorMenu.coffee_mug  disarmCallback "change_cursor coffee_mug"
  70.  
  71. .main.menuBar.cursorMenu setValues -radioBehavior True \
  72.                  -radioAlwaysOne True
  73.  
  74. # help pulldown
  75. xmPulldownMenu .main.menuBar.helpMenu managed
  76. xmPushButton .main.menuBar.helpMenu.help managed \
  77.     -labelString Help \
  78.     -mnemonic H
  79. .main.menuBar.help setValues -subMenuId .main.menuBar.helpMenu
  80.  
  81. .main.menuBar setValues -menuHelpWidget .main.menuBar.help
  82.  
  83. .main setValues -workWindow .main.label \
  84.         -menuBar .main.menuBar
  85.  
  86. proc change_cursor {cursor} {
  87.     global isSet
  88.     global pixmap
  89.  
  90.     .main.menuBar.cursorMenu.$cursor getValues -set isSet
  91.     if {$isSet == "true"} {
  92.     .main.label defineCursor $cursor
  93.     }
  94. }
  95.  
  96. proc fileDialog {} {
  97.     # does this command already exist - else create it
  98.     if {[llength [info commands .fileDialog]] > 0} {
  99.     .fileDialog manageChild
  100.     } else {
  101.     xmFileSelectionDialog .fileDialog managed
  102.     .fileDialog okCallback load_pixmap
  103.     .fileDialog cancelCallback ".fileDialog unmanageChild"
  104.     }
  105. }
  106.  
  107. proc load_pixmap {} {
  108.     global selection
  109.     global pixmap
  110.  
  111.     .fileDialog getValues -dirSpec selection
  112.     .main.label setValues -labelPixmap $selection
  113.     set pixmap $selection
  114. }
  115.  
  116. . realizeWidget
  117. . mainLoop
  118.  
  119.